home *** CD-ROM | disk | FTP | other *** search
- UNIT menus;
-
- INTERFACE
-
- USES
- Globals, GPLib, Misc;
-
- PROCEDURE DoCommand (mResult : LongInt);
-
- IMPLEMENTATION
-
- PROCEDURE doAbout;
- VAR
- IDStrHandle : StringHandle;
- dialogP : DialogPtr;
- item : integer;
- Str1, Str2, Str3 : str255;
- myHeapSpace : LongInt;
- FreeSpace : Size;
- BEGIN
- IDStrHandle := StringHandle(GetResource(rsrc, 0));
- IF IDStrHandle = NIL THEN
- BEGIN
- doMessage('Get About box crash!', '', '', '');
- ExitToShell;
- END;
- MoveHHi(Handle(IDStrHandle));
- HLock(Handle(IDStrHandle));
- FreeSpace := FreeMem;
- myHeapSpace := MaxMem(FreeSpace);
- NumToString(myHeapSpace, Str2);
- Str2 := concat('Memory = ', Str2);
- Str3 := '';
- Str1 := '';
- ParamText(IDStrHandle^^, Str1, Str2, Str3);
- dialogP := GetNewDialog(AboutDialog, NIL, pointer(-1));
- IF dialogP = NIL THEN
- BEGIN
- doMessage('Dialog crash!', 'We are dead...', '', '');
- ExitToShell;
- END;
- initCursor;
- ModalDialog(NIL, item);
- DisposDialog(dialogP);
- HUnlock(Handle(IDStrHandle));
- END;
-
- PROCEDURE Do_comm_commands (whichMenu, whichItem : INTEGER);
-
- VAR
- errC : INTEGER;
- resetmodem : boolean;
-
- BEGIN
- resetmodem := false;
- CASE whichMenu OF
- baudMenu :
- BEGIN
- Place_checkmarks(baudMenu, b300, b19200, whichItem);
- resetmodem := true;
- CASE whichItem OF
- b300 :
- baud := 380;
- b1200 :
- baud := 94;
- b2400 :
- baud := 46;
- b4800 :
- baud := 22;
- b9600 :
- baud := 10;
- b19200 :
- baud := 4;
- END; {CASE whichItem}
- END; {baudMenu}
-
- parityMenu :
- BEGIN
- Place_checkmarks(parityMenu, noP, oddP, whichItem);
- resetmodem := true;
- CASE whichItem OF
- noP :
- parity := 8192;
- evenP :
- parity := 12288;
- oddP :
- parity := 4096;
- END; {CASE whichItem}
- END; {parityMenu}
-
- bitsMenu :
- BEGIN
- resetmodem := true;
- IF whichItem < 3 THEN
- Place_checkmarks(bitsMenu, bData7, bData8, whichItem)
- ELSE
- Place_checkmarks(bitsMenu, bStop1, bStop2, whichItem);
- CASE whichItem OF
- bData7 :
- dataBits := 1024;
- bData8 :
- dataBits := 3072;
- bStop1 :
- stopBits := 16384;
- bStop15 :
- stopBits := -32768;
- bStop2 :
- stopBits := -16384;
- END; {CASE whichItem}
- END; {bitsMenu}
-
- END; {CASE whichMenu}
-
- IF resetmodem THEN
- BEGIN
- serConfig := baud + parity + dataBits + stopBits;
- errC := SerReset(inRefNumA, serConfig);
- errC := SerReset(outRefNumA, serConfig);
- errC := SerReset(inRefNumB, serConfig);
- errC := SerReset(outRefNumB, serConfig);
- END;
-
- END; {Do_comm_commands}
-
- PROCEDURE DoCommand; {(mResult : LongInt)}
- VAR
- name, command : STR255;
-
- BEGIN
- theMenu := HiWord(mResult);
- theItem := LoWord(mResult);
- CASE theMenu OF
- appleMenu :
- IF theItem = aAbout THEN
- doAbout
- ELSE
- BEGIN
- GetItem(myMenus[applemenu], theItem, name);
- refNum := OpenDeskAcc(name);
- END;
- fileMenu :
- CASE theItem OF
- 7 :
- doneFlag := TRUE; { Quit }
- END; { theItem case }
-
- OTHERWISE
- Do_comm_commands(theMenu, theItem);
- END; { of menu case }
-
- HiliteMenu(0);
- END; { of DoCommand }
- END.